/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#include "stdafx.h"
#include "S_DX顶点缓存.h"

using namespace std;



S_DX顶点缓存::S_DX顶点缓存()
{
	/*m_顶点 = new S_DX缓存();
	m_法线 = new S_DX缓存();
	m_颜色 = new S_DX缓存();
	m_索引 = new S_DX缓存();
	m_UV1 = new S_DX缓存();
	m_UV2 = new S_DX缓存();*/


}





void S_DX顶点缓存::f_填充顶点(const vector<vec3>& v, void* ctx) {
	S_DX环境* 环境 = (S_DX环境*)ctx;

	S_GPU缓存创建参数 缓存创建参数;
	缓存创建参数.data = v.data();
	缓存创建参数.length = v.size();
	缓存创建参数.byteOffset = sizeof(vec3);


	//m_顶点->f_创建内存对象(&缓存创建参数, 环境->设备);
	//m_顶点->f_Fill(v.data(), v.size()*sizeof(vec3), 环境->命令列表);
}

void S_DX顶点缓存::f_填充法线(const vector<vec3>& n, void* ctx) {
	S_DX环境* 环境 = (S_DX环境*)ctx;

	S_GPU缓存创建参数 缓存创建参数;
	缓存创建参数.data = n.data();
	缓存创建参数.length = n.size();
	缓存创建参数.byteOffset = sizeof(vec3);


	//m_法线->f_创建内存对象(&缓存创建参数, 环境->设备);
	//m_法线->f_Fill(n.data(), n.size() * sizeof(vec3), 环境->命令列表);
}

void S_DX顶点缓存::f_填充颜色(const vector<ubvec4>& c, void* ctx) {
	S_DX环境* 环境 = (S_DX环境*)ctx;

	S_GPU缓存创建参数 缓存创建参数;
	缓存创建参数.data = c.data();
	缓存创建参数.length = c.size();
	缓存创建参数.byteOffset = sizeof(vec3);


	//m_颜色->f_创建内存对象(&缓存创建参数, 环境->设备);
	//m_颜色->f_Fill(c.data(), c.size() * sizeof(ubvec4), 环境->命令列表);
}

void S_DX顶点缓存::f_填充索引(const vector<uint32>& index, void* ctx) {
	S_DX环境* 环境 = (S_DX环境*)ctx;

	S_GPU缓存创建参数 缓存创建参数;
	缓存创建参数.data = index.data();
	缓存创建参数.length = index.size();
	缓存创建参数.byteOffset = sizeof(uint32);


	//m_索引->f_创建内存对象(&缓存创建参数, 环境->设备);
	//m_索引->f_Fill(index.data(), index.size()*sizeof(uint32), 环境->命令列表);
}





void S_DX顶点缓存::f_填充UV1(const vector<vec2>& uv1, void* ctx)
{
	S_DX环境* 环境 = (S_DX环境*)ctx;

	S_GPU缓存创建参数 缓存创建参数;
	缓存创建参数.data = uv1.data();
	缓存创建参数.length = uv1.size();
	缓存创建参数.byteOffset = sizeof(vec2);


	//m_UV1->f_创建内存对象(&缓存创建参数, 环境->设备);
	//m_UV1->f_Fill(uv1.data(), uv1.size() * sizeof(uint32), 环境->命令列表);
}

void S_DX顶点缓存::f_填充UV2(const vector<vec2>& uv2, void* ctx)
{
	S_DX环境* 环境 = (S_DX环境*)ctx;

	S_GPU缓存创建参数 缓存创建参数;
	缓存创建参数.data = uv2.data();
	缓存创建参数.length = uv2.size();
	缓存创建参数.byteOffset = sizeof(vec2);


	//m_UV1->f_创建内存对象(&缓存创建参数, 环境->设备);
	//m_UV2->f_Fill(uv2.data(), uv2.size() * sizeof(uint32), 环境->命令列表);
}







S_GUP内存映射 S_DX顶点缓存::f_get顶点() {
	//return m_顶点->f_map();
	return { 0 };
}

S_GUP内存映射 S_DX顶点缓存::f_get法线() {
	//return m_法线->f_map();
	return { 0 };
}

S_GUP内存映射 S_DX顶点缓存::f_get颜色() {
	//return m_颜色->f_map();
	return { 0 };
}

S_GUP内存映射 S_DX顶点缓存::f_get索引() {
	//return m_索引->f_map();
	return { 0 };
}

S_GUP内存映射 S_DX顶点缓存::f_getUV1() {
	//return m_UV1->f_map();
	return { 0 };
}

S_GUP内存映射 S_DX顶点缓存::f_getUV2() {
	//return m_UV2->f_map();
	return { 0 };
}





void S_DX顶点缓存::f_UpMap顶点() {
	//m_顶点->f_unmap();
}

void S_DX顶点缓存::f_UpMap法线() {
	//m_法线->f_unmap();
}

void S_DX顶点缓存::f_UpMap颜色() {
	//m_颜色->f_unmap();
}

void S_DX顶点缓存::f_UpMap索引() {
	//m_索引->f_unmap();
}

void S_DX顶点缓存::f_UpMapUV1() {
	//m_UV1->f_unmap();
}

void S_DX顶点缓存::f_UpMapUV2() {
	//m_UV2->f_unmap();
}


//XMFLOAT4X4;


